Skip to content

docs+feat: migrate Day 1 and Day 2 autograding to workflows#202

Merged
accesswatch merged 4 commits into
mainfrom
docs/autograding-workflows-migration
May 12, 2026
Merged

docs+feat: migrate Day 1 and Day 2 autograding to workflows#202
accesswatch merged 4 commits into
mainfrom
docs/autograding-workflows-migration

Conversation

@accesswatch
Copy link
Copy Markdown
Collaborator

@accesswatch accesswatch commented May 12, 2026

Summary

Migrates Day 1 and Day 2 autograded checks off the broken GitHub Classroom test-case UI and onto plain GitHub Actions workflows that live in the Learning Room template. Skips the Classroom autograding step entirely for both assignments.

Why

Classroom's test-case modal intermittently fails to save (the modal closes silently and the list comes back empty). Re-running setup for every cohort is fragile. Workflows in the template repo are copied into every student repo automatically and produce richer, more accessible feedback than the Classroom test runner.

Commits in this PR

  1. docs: migrate Day 1 and Day 2 autograding to workflows -- doc updates, delete legacy classroom/autograding-day{1,2}.json, sync qa-bundle, extend Test-LearningRoomTemplate.ps1 to assert all twelve required workflow files
  2. feat(autograder): add Challenge 2/5/6 workflows and extend watchdog -- the three previously-missing Day 1 check workflows, plus watchdog wiring for them
  3. build(html): regenerate static site to reflect autograding migration -- npm run build:html output so search-index.json and rendered pages match the new docs

Student-facing feedback model

Every workflow posts deterministic, hard-coded English feedback as a PR or issue comment, updates in place using a stable marker (## Challenge N:), and has an in-job error handler plus a watchdog fallback. No AI, no Copilot subscription required for the autograder.

What facilitators do differently

When creating Day 1 and Day 2 assignments in GitHub Classroom:

  1. Paste the assignment description as usual.
  2. Skip the autograding tests section. Leave it empty. Do not click Add test.
  3. Save the assignment and copy the invite URL.

Full details in admin/classroom/autograding-setup.md.

Test plan

  • npm run test:automation (workflow readiness tests)
  • scripts/classroom/Test-LearningRoomTemplate.ps1 against a freshly-created repo from the template
  • One smoke-test student account opens an issue, opens a branch+commit+PR with Closes #N, confirms three comments appear

Related

Follow-up tracked in #204 (Challenge Coach podcast transcripts refresh after this migration lands).

GitHub Workshop Bot added 3 commits May 12, 2026 12:23
- Delete legacy classroom/autograding-day1.json and autograding-day2.json
  (workflows in learning-room/.github/workflows/autograder-*.yml are now the
  only source of truth for what each automated check verifies)
- Update all facilitator docs (admin/classroom/, classroom/, GO-LIVE,
  runbook) to instruct leaving the GitHub Classroom autograding tests
  area empty for both Day 1 and Day 2 assignments
- Document autograder-watchdog.yml behavior accurately in
  admin/classroom/autograding-setup.md (workflow_run-triggered fallback
  that only fires when a sibling autograder reports conclusion=failure
  and no challenge result comment was posted)
- Extend scripts/classroom/Test-LearningRoomTemplate.ps1 to assert all
  twelve required workflow files exist in the smoke-test repo (catches
  half-finished template syncs)
- Sync admin/qa-bundle/ copies from canonical sources so the QA pack
  matches the new flow
- Add autograder-issue-filed.yml: acknowledges first issue (Challenge 2)
  with a friendly comment and a count-based follow-up on later issues
- Add autograder-branch-commit.yml: verifies at least one commit on a
  non-default branch (Challenge 5) on push events
- Add autograder-pr-link.yml: verifies the PR body contains a closing
  keyword followed by an issue number (Challenge 6)
- Extend autograder-watchdog.yml workflow_run listener and the in-job
  challengeMarkers array to cover Challenges 2, 5, and 6 alongside the
  existing 7, 10, 14, and 16 entries

All three new workflows post deterministic, hard-coded English
feedback as PR/issue comments (no AI, no Copilot subscription
required) and use a marker-based update-in-place pattern so the
comment thread stays readable for screen readers.
Regenerates html/ via 'npm run build:html' so the rendered pages and
search-index.json match the corrected source markdown:

- classroom/assignment-day{1,2}-*.html: drop the deprecated
  'Autograding: See autograding-day{1,2}.json' metadata line
- classroom/grading-guide.html, classroom/index.html: reflect the new
  workflow-based check list
- admin/classroom/autograding-setup.html: now describes the
  workflow-based flow and watchdog fallback
- admin/LEARNING-ROOM-E2E-QA-RUNBOOK.html and qa-bundle copies: pick
  up the same edits
- search-index.json: removes all stale 'autograding-day{1,2}.json'
  references from indexed bodies (the only remaining mentions are
  intentional historical references in autograding-setup.md)

Generated by 'npm run build:html'. No hand-edits.
Copilot AI review requested due to automatic review settings May 12, 2026 19:33
@accesswatch accesswatch requested a review from taylorarndt as a code owner May 12, 2026 19:33
@github-actions
Copy link
Copy Markdown
Contributor

Hi! I am Aria. Here is my review of your pull request:

Report Status

Validation Needs Attention [ACTION REQUIRED]

Required Checks

  • Issue Reference
    PR should reference the issue it addresses (e.g., "Closes #12")
    Add "Closes #XX" to your PR description to automatically close the issue when merged. Learn more: docs/04-working-with-issues.md

  • PR Description

  • File Location
    Changes should be in learning-room/ directory only
    Student contributions should modify files in learning-room/docs/ only. Other directories are workshop infrastructure.

Learning Resources

Based on your changes, these guides might help:


Automated validation by Learning Room Bot. Aria generated this review. Last updated: 2026-05-12T19:33:37.199Z
Questions? Check PR Guidelines or mention @Facilitator

@github-actions
Copy link
Copy Markdown
Contributor

Learning Room Validation Report

Great work. Your changes look good.

Resources

@github-actions github-actions Bot added documentation Improvements or additions to documentation needs-work labels May 12, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Peer Review Assigned

Hi @accesswatch! Your PR has been automatically paired with @taylorarndt for peer review.

For @taylorarndt:

This is a great opportunity to practice code review skills! Here's what to look for:

Content Quality:

  • Does the change accomplish what the issue describes?
  • Is the writing clear and helpful?
  • Are there any typos or grammar issues?

Accessibility:

  • Proper heading hierarchy (H1 → H2 → H3, no skips)?
  • Descriptive link text (not "click here")?
  • Alt text on images?
  • [TODO] markers removed?

Documentation:

  • Code blocks are properly formatted?
  • Tables have headers?
  • References/links work correctly?

Review Guidelines:

  • Be kind and constructive
  • Suggest improvements, don't just point out problems
  • Ask questions if something is unclear
  • Approve when ready or request changes with explanation

Resources:


Pairing by Learning Room Grouping Engine

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates Day 1/Day 2 autograding off GitHub Classroom’s test-case UI and into first-class GitHub Actions workflows shipped in the Learning Room template, plus updates facilitator/student documentation and regenerates the static HTML site to match.

Changes:

  • Adds new autograder workflows for Challenges 2/5/6 and wires them into the autograder watchdog.
  • Removes legacy Classroom autograding JSON files and updates facilitator runbooks/docs to leave Classroom “Autograding tests” empty.
  • Updates smoke/template validation scripts to assert the full required workflow set is present; regenerates HTML docs.

Reviewed changes

Copilot reviewed 57 out of 58 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
scripts/classroom/Test-LearningRoomTemplate.ps1 Expands smoke verification to assert all required workflow files exist in a freshly created template-based repo.
admin/qa-bundle/scripts/classroom/Test-LearningRoomTemplate.ps1 QA-bundle copy of the expanded smoke verification workflow list.
learning-room/.github/workflows/autograder-issue-filed.yml New Challenge 2 workflow posting issue feedback when a student opens an issue.
learning-room/.github/workflows/autograder-branch-commit.yml New Challenge 5 workflow posting PR feedback verifying commits are on a non-default branch.
learning-room/.github/workflows/autograder-pr-link.yml New Challenge 6 workflow posting PR feedback verifying closing keywords + #N exist in PR body.
learning-room/.github/workflows/autograder-watchdog.yml Updates watchdog to listen for the new workflows and recognize their comment markers.
classroom/autograding-day1.json Deletes legacy Classroom autograding definitions for Day 1.
classroom/autograding-day2.json Deletes legacy Classroom autograding definitions for Day 2.
README.md Removes references to deleted classroom/autograding-day{1,2}.json.
classroom/README.md Updates facilitator setup instructions to skip Classroom autograding UI and rely on template workflows.
classroom/grading-guide.md Updates grading guidance to reflect workflow-based automated checks (not JSON test cases).
classroom/assignment-day1-you-belong-here.md Updates assignment header + wording to reflect workflow-based checks and no Classroom autograding configuration.
classroom/assignment-day2-you-can-build-this.md Updates assignment header + wording to reflect workflow-based checks and no Classroom autograding configuration.
admin/classroom/autograding-setup.md Replaces the old “enter these tests into Classroom” guide with a deprecation notice + workflow mapping.
admin/classroom/live-facilitation-flow.md Replaces “configure autograding” steps with “verify workflows exist; leave tests empty” steps.
admin/classroom/README.md Updates admin classroom pack docs to reflect workflow-based autograding and updated facilitation checklist.
GO-LIVE-QA-GUIDE.md Updates go-live checklist to validate workflow-based autograding and new enrollment/release signals.
admin/LEARNING-ROOM-E2E-QA-RUNBOOK.md Updates end-to-end QA steps for “no Classroom autograding UI” and assignment-link registration model.
admin/qa-bundle/GO-LIVE-QA-GUIDE.md QA-bundle copy of the updated go-live checklist.
admin/qa-bundle/README.md Removes references to deleted autograding JSONs in the QA bundle docs listing.
admin/qa-bundle/classroom/README.md QA-bundle copy of the updated Classroom setup instructions (leave tests empty).
admin/qa-bundle/classroom/grading-guide.md QA-bundle copy of the updated grading guide (workflows instead of JSON).
admin/qa-bundle/classroom/assignment-day1-you-belong-here.md QA-bundle copy of assignment text updates for workflow-based checks.
admin/qa-bundle/classroom/assignment-day2-you-can-build-this.md QA-bundle copy of assignment text updates for workflow-based checks.
admin/qa-bundle/admin/classroom/autograding-setup.md QA-bundle copy of the deprecated autograding setup doc (now points to workflows).
admin/qa-bundle/admin/classroom/live-facilitation-flow.md QA-bundle copy of the updated live facilitation flow.
admin/qa-bundle/admin/classroom/README.md QA-bundle copy of the updated admin classroom README.
admin/qa-bundle/admin/LEARNING-ROOM-E2E-QA-RUNBOOK.md QA-bundle copy of the updated end-to-end QA runbook.
html/README.html Regenerated static HTML reflecting removal of autograding JSON references.
html/REGISTER.html Regenerated static HTML adding “new student fast path” enrollment content and updated automation notes.
html/GO-LIVE-QA-GUIDE.html Regenerated static HTML reflecting workflow-based autograding + assignment-link registration checks.
html/classroom/index.html Regenerated static HTML reflecting “leave autograding tests empty” setup steps and workflow verification text.
html/classroom/grading-guide.html Regenerated static HTML reflecting workflow-based automated checks.
html/classroom/assignment-day1-you-belong-here.html Regenerated static HTML reflecting workflow-based automated checks wording.
html/classroom/assignment-day2-you-can-build-this.html Regenerated static HTML reflecting workflow-based automated checks wording.
html/admin/REGISTRATION-QUICKSTART.html Regenerated static HTML reflecting assignment-link registration model (no org invite token).
html/admin/REGISTRATION-ADMIN.html Regenerated static HTML reflecting assignment-link registration architecture and verification/rollback steps.
html/admin/QUICK_START_SETUP.html New static HTML quick-start page for assignment-link registration setup.
html/admin/IMPLEMENTATION_SUMMARY.html New static HTML implementation summary for registration/classroom integration changes.
html/admin/GITHUB_CLASSROOM_ARCHITECTURE.html New static HTML architecture doc for the assignment-link registration + dashboard model.
html/admin/FINE_GRAINED_TOKEN_SETUP.html New static HTML documenting the current token/variable setup expectations.
html/admin/ENROLLMENT_SETUP_CHECKLIST.html New static HTML checklist for enrollment setup/configuration.
html/admin/classroom/index.html Regenerated static HTML reflecting updated admin classroom guidance and new “source of truth”.
html/admin/classroom/live-facilitation-flow.html Regenerated static HTML reflecting “verify workflows; no Classroom autograding UI config” steps.
html/admin/classroom/autograding-setup.html Regenerated static HTML reflecting deprecation of Classroom test-case setup and workflow mapping.
html/admin/CLASSROOM_INTEGRATION_GUIDE.html New static HTML guide for assignment-link based Classroom integration and facilitator workflows.
html/admin/qa-bundle/index.html Regenerated static HTML reflecting removal of autograding JSONs.
html/admin/qa-bundle/GO-LIVE-QA-GUIDE.html Regenerated static HTML reflecting updated go-live checklist content.
html/admin/qa-bundle/classroom/index.html Regenerated static HTML reflecting updated Classroom setup guidance.
html/admin/qa-bundle/classroom/grading-guide.html Regenerated static HTML reflecting workflow-based automated checks.
html/admin/qa-bundle/classroom/assignment-day1-you-belong-here.html Regenerated static HTML reflecting workflow-based automated checks wording.
html/admin/qa-bundle/classroom/assignment-day2-you-can-build-this.html Regenerated static HTML reflecting workflow-based automated checks wording.
html/admin/qa-bundle/admin/classroom/index.html Regenerated static HTML reflecting updated admin classroom pack guidance and “source of truth”.
html/admin/qa-bundle/admin/classroom/live-facilitation-flow.html Regenerated static HTML reflecting updated facilitation flow steps.
html/admin/qa-bundle/admin/classroom/autograding-setup.html Regenerated static HTML reflecting autograding deprecation and workflow mapping.

Comment on lines 9 to 16
workflow_run:
workflows:
- "Challenge 2: Issue Filed Check"
- "Challenge 5: Branch Commit Check"
- "Challenge 6: PR Linked to Issue Check"
- "Challenge 7: Merge Conflict Resolution Check"
- "Challenge 10: Local Commit Check"
- "Challenge 14: Issue Template Validation"
Comment on lines +39 to +43
COMMITS=$(git log --oneline origin/main..HEAD | wc -l)
else
BRANCH="${GITHUB_REF#refs/heads/}"
COMMITS=$(git log --oneline origin/main..HEAD 2>/dev/null | wc -l || echo 0)
fi
Comment on lines +6 to +14
on:
push:
branches-ignore:
- main
pull_request:
types: [opened, synchronize, reopened]
branches:
- main

Replaces the JSON-file validation block with workflow-file assertions
that match the new autograding model:

- Drop validateAutogradingJson and its four tests that opened the now-
  deleted classroom/autograding-day{1,2}.json files.
- Add four workflow-file tests that verify, for every Day 1 and Day 2
  challenge (2, 5, 6, 7, 10, 14, 16):
  - the corresponding autograder-*.yml exists in the learning-room
    template
  - each workflow posts a '## Challenge N:' marker comment so the
    update-in-place and watchdog logic can identify it
  - autograder-watchdog.yml references every primary marker so the
    fallback notice covers all seven checks
- Add the three previously-missing autograder workflows
  (issue-filed, branch-commit, pr-link) plus autograder-watchdog.yml
  to the template-readiness file list.
- Update the file-header comment and the section-2 banner to describe
  workflows instead of JSON.

All 98 automation tests pass locally.
@github-actions
Copy link
Copy Markdown
Contributor

Learning Room Validation Report

Great work. Your changes look good.

Resources

@github-actions
Copy link
Copy Markdown
Contributor

Hi! I am Aria. Here is my review of your pull request:

Report Status

Validation Needs Attention [ACTION REQUIRED]

Required Checks

  • Issue Reference
    PR should reference the issue it addresses (e.g., "Closes #12")
    Add "Closes #XX" to your PR description to automatically close the issue when merged. Learn more: docs/04-working-with-issues.md

  • PR Description

  • File Location
    Changes should be in learning-room/ directory only
    Student contributions should modify files in learning-room/docs/ only. Other directories are workshop infrastructure.

Learning Resources

Based on your changes, these guides might help:


Automated validation by Learning Room Bot. Aria generated this review. Last updated: 2026-05-12T19:43:53.116Z
Questions? Check PR Guidelines or mention @Facilitator

@github-actions
Copy link
Copy Markdown
Contributor

Hi! I am Aria. Here is my review of your pull request:

Report Status

Validation Needs Attention [ACTION REQUIRED]

Required Checks

  • Issue Reference
    PR should reference the issue it addresses (e.g., "Closes #12")
    Add "Closes #XX" to your PR description to automatically close the issue when merged. Learn more: docs/04-working-with-issues.md

  • PR Description

  • File Location
    Changes should be in learning-room/ directory only
    Student contributions should modify files in learning-room/docs/ only. Other directories are workshop infrastructure.

Learning Resources

Based on your changes, these guides might help:


Automated validation by Learning Room Bot. Aria generated this review. Last updated: 2026-05-12T19:46:34.446Z
Questions? Check PR Guidelines or mention @Facilitator

@accesswatch accesswatch merged commit 203a0f5 into main May 12, 2026
12 of 13 checks passed
@accesswatch accesswatch deleted the docs/autograding-workflows-migration branch May 12, 2026 19:52
@github-actions
Copy link
Copy Markdown
Contributor

Progress Update

Great work, @accesswatch!

Current Level: Explorer
Merged PRs: 21
Next Level: Contributor (NaN more merged PRs)

Available Challenges:

  • 01 Scavenger Hunt
  • 02 First Issue
  • 03 Join Conversation

Keep going!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation needs-work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants